#ifndef EXPLICITDYN_H
#define EXPLICITDYN_H

#ifdef API_DECLARE_FUNC
#ifdef EXPLICITDYN_EXPORTS
#define EXPLICITDYN_API __declspec(dllexport)
#elif EXPLICITDYN_IMPORTS
#define EXPLICITDYN_API __declspec(dllimport)
#else
#error "EXPLICITDYN_EXPORTS or EXPLICITDYN_IMPORTS not defined in a windows build"
#endif // EXPLICITDYN_EXPORTS
#endif // API_DECLARE_FUNC

#if API_DECLARE_FUNC
#define API_FUNC(retType,name,paramList)\
EXPLICITDYN_API retType name paramList
#elif API_DECLARE_FUNC_PTR
#define API_FUNC(retType,name,paramList)\
extern retType (*name)paramList;
#else // API_DECLARE_FUNC
#error "API_FUNC called without specifying API_DECLARE_FUNC or API_DECLARE_FUNC_PTR"
#endif // API_DECLARE_FUNC

#endif // EXPLICITDYN_H
